Der JSON-Serialisierer System.Text.Json bietet in Version 10.0 unter JsonSerializationOptions.Strict neue Optionen an, darunter JSON AllowDuplicateProperties = false.
|
18.08.2026 09:28 Uhr |
![Neu in .NET 10.0 [36]: Neue Einstellungssammlung mit Best Practices für JSON](https://heise.cloudimg.io/bound/1200x1200/q85.png-lossy-85.webp-lossy-85.foil1/_www-heise-de_/imgs/18/5/1/4/8/3/0/7/dotnet-sign-6f751b3d1088dffe.jpg)
Der JSON-Serialisierer System.Text.Json bietet in Version 10.0 unter JsonSerializationOptions.Strict neue Optionen an, darunter JSON AllowDuplicateProperties = false.
JsonSerializationOptions.Strict setzt Einstellungen, die Microsoft in den Release Notes als „Best Practices“ bezeichnet:
Das ist neu in .NET 11.0: Dr. Holger Schwichtenberg und weitere Experten präsentieren am 17. November 2026 auf der Online-Konferenz betterCode() .NET 11.0 die Änderungen für Entwicklerinnen und Entwickler. Tickets zum Frühbucherpreis sind im Online-Shop verfügbar.
Diese Einstellungen sind lesekompatibel mit JsonSerializationOptions.Default, das heißt, ein mit JsonSerializationOptions.Default serialisiertes Objekt kann mit JsonSerializationOptions.Strict deserialisiert werden. Der folgende Codeausschnitt führt zum Laufzeitfehler „The JSON property 'ID' could not be mapped to any .NET member contained in type 'Person'.“:
Der zweite Fehler des doppelten Wertes für "LastName" wird nicht ausgegeben, da System.Text.Json leider immer nur den ersten Fehler liefert.
JsonSerializationOptions.Strict kann auch beim Serialisieren eingesetzt werden. Allerdings machen die meisten Einstellungen dabei keinen Unterschied.
Hier ist ein Beispiel, in dem JsonSerializerOptions.Strict einen Unterschied bei Serialize() macht:
Wenn man dann eine Property in Person auf null lässt, kommt:
Das liegt daran, dass JsonSerializerOptions.Strict die Eigenschaft RespectNullableAnnotations = true setzt. Das ist aber im engeren Sinne nicht neu in .NET 10.0. RespectNullableAnnotations wurde in .NET 9.0 eingeführt.
(rme)